package com.itheima.controller;

import com.itheima.pojo.Emp;
import com.itheima.pojo.Result;
import com.itheima.service.EmpService;
import com.itheima.utils.JwtUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.http.HttpResponse;
import java.util.HashMap;
import java.util.Map;

@RestController
@Slf4j
public class LoginController {

    @Autowired
    private EmpService empService;

    @PostMapping("/login")
    public Result login(@RequestBody Emp emp){
        log.info("emp封装的是用户名和密码:{}",emp);
        // 登录 功能
        // 根据用户名和密码做查询 如果得到 对象不是null 登录成功
        Emp loginEmp = empService.login(emp);
        // loginEmp 查询到登录用户信息    传递emp是封装 用户名密码信息
        if(loginEmp!=null){
            //成功 做个登录的标记操作！！！
            // 生成令牌
            //里面传入什么 传入 请求载荷 也就是我们要交互的一些常用数据
            // 一般用户的基础信息 id  username
            Map<String,Object> data = new HashMap<>();
            data.put("id",loginEmp.getId());//这里存的登录的用户的id
            data.put("username",loginEmp.getUsername());
           // token是令牌的意思
            String token = JwtUtils.generateJwt(data);

            return Result.success(token);// 写到响应体中
            //  前端代码中 会对这个 token数据进行解析 拿到数据会存到浏览器的本地存储空间
        }else {
            return Result.error("用户名或密码错误！！！");
        }
    }
}
